/* Susan(tm) Java Version
   by Thomas Lochmatter, Brig-Glis, Switzerland
   and Patrick Bizeau, Brig-Glis, Switzerland    */

package laWa;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

// Events risen from SusanGame
interface SusanGameListener {
  // This is called to add a new log entry
  public abstract void SusanGameLogEntry(String t);

  // A new stone has been placed.
  public abstract void SusanGamePlacePerformed(int player, int to);

  // A stone has been moved.
  public abstract void SusanGameDragPerformed(int player, int from, int to);

  // Prepare the next turn, this event occurs after a place or drag operation,
  // if the game is not finished.
  // This event also occurs when moving in the history.
  public abstract void SusanGamePrepareNextTurn(int player);

  // Prepare the next turn, this event occurs after a place or drag operation,
  // if the game is finished.
  // This event also occurs when moving in the history.
  // winner=-1: no winner
  // winner=0: Player 1 wins
  // winner=1: Player 2 wins
  public abstract void SusanGameFinished(int winner);

  // These events occur when the computer calculates
  public abstract void SusanGameComputerBegin();
  public abstract void SusanGameComputerEnd();
  public abstract void SusanGameComputerChangeStatus(String status);

  // This is called when the history changed. The listener should update his list.
  public abstract void SusanGameHistoryChanged();

  // This is called when the position in the history changed. 
  public abstract void SusanGameHistoryPositionChanged();
}

// ######################### END OF FILE
